<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>继承内置类</title>
</head>
<body>
    
</body>
</html>

<script>
    //使用原型扩展内置类
//     function Arr(...args){
//         this.data = [];
//         args.forEach(item => this.data.push(item));
//         //获取数组的第一个元素
//         this.first = function(){
//             return this.data[0];
//         };
//         //获取数组的最后一个元素
//         this.last = function(){
//             return this.data[args.length - 1];
//         }
        
//         //获取最大值
//         this.max = function(){
//             return this.data.sort((a,b) => b - a)[0];
//         }

//     }

//     let a = [1,2,3];
//     //Arr继承原始的Array对象
//     Arr.prototype = Object.create(Array.prototype);

//     let arr = new Arr(1,2,3);

//    console.log(arr.max());



//使用class扩展内置类
class NewArr extends Array{
    constructor(...args){
        super(...args);
    }
    //获取数组的第一个
    first(){
        return this[0];
    }
    //给数组中添加元素
    add(value){
        this.push(value);
    }
    //移除数组中的元素
    remove(value){
        let pos = this.findIndex(curValue => {
            return curValue == value;
        });
        this.splice(pos,1);
    }
}

let hd = new NewArr(5,3,2,1);
console.log(hd.length);
console.log(hd.first());

hd.add('后盾人');
console.log(hd);
console.log(hd.join(','));

hd.remove(3);
console.log(hd.join());





    
</script>